<html>
<head><meta charset="utf-8"><title>pipelining for distributed compilation · t-compiler/wg-pipelining · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/195180-t-compiler/wg-pipelining/index.html">t-compiler/wg-pipelining</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/195180-t-compiler/wg-pipelining/topic/pipelining.20for.20distributed.20compilation.html">pipelining for distributed compilation</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="163124954"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/195180-t-compiler/wg-pipelining/topic/pipelining%20for%20distributed%20compilation/near/163124954" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/195180-t-compiler/wg-pipelining/topic/pipelining.20for.20distributed.20compilation.html#163124954">(Apr 11 2019 at 18:24)</a>:</h4>
<p>cc <span class="user-mention" data-user-id="119009">@eddyb</span></p>



<a name="163125006"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/195180-t-compiler/wg-pipelining/topic/pipelining%20for%20distributed%20compilation/near/163125006" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/195180-t-compiler/wg-pipelining/topic/pipelining.20for.20distributed.20compilation.html#163125006">(Apr 11 2019 at 18:25)</a>:</h4>
<p>hi! I'm curious what your plans are, so far</p>



<a name="163125041"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/195180-t-compiler/wg-pipelining/topic/pipelining%20for%20distributed%20compilation/near/163125041" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/195180-t-compiler/wg-pipelining/topic/pipelining.20for.20distributed.20compilation.html#163125041">(Apr 11 2019 at 18:25)</a>:</h4>
<p>you can definitely do codegen "on the second run" right now, by relying on incremental caches</p>



<a name="163125086"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/195180-t-compiler/wg-pipelining/topic/pipelining%20for%20distributed%20compilation/near/163125086" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/195180-t-compiler/wg-pipelining/topic/pipelining.20for.20distributed.20compilation.html#163125086">(Apr 11 2019 at 18:26)</a>:</h4>
<p>and we want to optimize those, going forward</p>



<a name="163125172"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/195180-t-compiler/wg-pipelining/topic/pipelining%20for%20distributed%20compilation/near/163125172" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/195180-t-compiler/wg-pipelining/topic/pipelining.20for.20distributed.20compilation.html#163125172">(Apr 11 2019 at 18:27)</a>:</h4>
<p><span class="user-mention" data-user-id="119009">@eddyb</span> so far my plan was not to use incremental at all because I didn't want the incremental inputs to dirty the cache entries</p>



<a name="163125183"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/195180-t-compiler/wg-pipelining/topic/pipelining%20for%20distributed%20compilation/near/163125183" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/195180-t-compiler/wg-pipelining/topic/pipelining.20for.20distributed.20compilation.html#163125183">(Apr 11 2019 at 18:27)</a>:</h4>
<p>once parsing is incremental, unchanged sources would probably mean it goes straight to codegen the second time, so you only have the overhead of loading the caches into memory (which is one of the things we want to optimize)</p>



<a name="163125188"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/195180-t-compiler/wg-pipelining/topic/pipelining%20for%20distributed%20compilation/near/163125188" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/195180-t-compiler/wg-pipelining/topic/pipelining.20for.20distributed.20compilation.html#163125188">(Apr 11 2019 at 18:27)</a>:</h4>
<p>I'm not sure what you're referring to</p>



<a name="163125252"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/195180-t-compiler/wg-pipelining/topic/pipelining%20for%20distributed%20compilation/near/163125252" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/195180-t-compiler/wg-pipelining/topic/pipelining.20for.20distributed.20compilation.html#163125252">(Apr 11 2019 at 18:27)</a>:</h4>
<p>what are "incremental inputs" and what "cache entries" would be dirtied?</p>



<a name="163125373"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/195180-t-compiler/wg-pipelining/topic/pipelining%20for%20distributed%20compilation/near/163125373" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/195180-t-compiler/wg-pipelining/topic/pipelining.20for.20distributed.20compilation.html#163125373">(Apr 11 2019 at 18:29)</a>:</h4>
<p>cc <span class="user-mention" data-user-id="124287">@mw</span> <span class="user-mention" data-user-id="116466">@Zoxc</span> <span class="user-mention" data-user-id="116009">@nikomatsakis</span></p>



<a name="163125424"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/195180-t-compiler/wg-pipelining/topic/pipelining%20for%20distributed%20compilation/near/163125424" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/195180-t-compiler/wg-pipelining/topic/pipelining.20for.20distributed.20compilation.html#163125424">(Apr 11 2019 at 18:29)</a>:</h4>
<p>so the short version of this is that you tell the tool which command to run and what files it needs in order to run that command on either the local machine or another machine. the naiive behavior is to rerun whenever any of those inputs changes.</p>



<a name="163125548"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/195180-t-compiler/wg-pipelining/topic/pipelining%20for%20distributed%20compilation/near/163125548" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/195180-t-compiler/wg-pipelining/topic/pipelining.20for.20distributed.20compilation.html#163125548">(Apr 11 2019 at 18:31)</a>:</h4>
<p>if you sync incremental state you could be doing <code>cargo check</code> locally and codegen remotely</p>



<a name="163125571"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/195180-t-compiler/wg-pipelining/topic/pipelining%20for%20distributed%20compilation/near/163125571" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/195180-t-compiler/wg-pipelining/topic/pipelining.20for.20distributed.20compilation.html#163125571">(Apr 11 2019 at 18:31)</a>:</h4>
<p>potentially very efficiently</p>



<a name="163125592"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/195180-t-compiler/wg-pipelining/topic/pipelining%20for%20distributed%20compilation/near/163125592" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/195180-t-compiler/wg-pipelining/topic/pipelining.20for.20distributed.20compilation.html#163125592">(Apr 11 2019 at 18:31)</a>:</h4>
<p><span class="user-mention" data-user-id="119009">@eddyb</span> I want to avoid potentially doing anything at all locally</p>



<a name="163125613"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/195180-t-compiler/wg-pipelining/topic/pipelining%20for%20distributed%20compilation/near/163125613" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/195180-t-compiler/wg-pipelining/topic/pipelining.20for.20distributed.20compilation.html#163125613">(Apr 11 2019 at 18:31)</a>:</h4>
<p>my kneejerk reaction is "that's an antiquated design, you need more integration", but it might still work</p>



<a name="163125620"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/195180-t-compiler/wg-pipelining/topic/pipelining%20for%20distributed%20compilation/near/163125620" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/195180-t-compiler/wg-pipelining/topic/pipelining.20for.20distributed.20compilation.html#163125620">(Apr 11 2019 at 18:32)</a>:</h4>
<p>okay, sure, what's the problem then?</p>



<a name="163125688"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/195180-t-compiler/wg-pipelining/topic/pipelining%20for%20distributed%20compilation/near/163125688" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/195180-t-compiler/wg-pipelining/topic/pipelining.20for.20distributed.20compilation.html#163125688">(Apr 11 2019 at 18:32)</a>:</h4>
<p>naively applying incremental just means some of those commands take less to run</p>



<a name="163125724"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/195180-t-compiler/wg-pipelining/topic/pipelining%20for%20distributed%20compilation/near/163125724" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/195180-t-compiler/wg-pipelining/topic/pipelining.20for.20distributed.20compilation.html#163125724">(Apr 11 2019 at 18:32)</a>:</h4>
<p>clever use of incremental would result in distributed deduplication of work</p>



<a name="163125743"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/195180-t-compiler/wg-pipelining/topic/pipelining%20for%20distributed%20compilation/near/163125743" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/195180-t-compiler/wg-pipelining/topic/pipelining.20for.20distributed.20compilation.html#163125743">(Apr 11 2019 at 18:33)</a>:</h4>
<p>kind of like how "parallel rustc" does queries, except cross-machine instead of cross-thread</p>



<a name="163125777"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/195180-t-compiler/wg-pipelining/topic/pipelining%20for%20distributed%20compilation/near/163125777" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/195180-t-compiler/wg-pipelining/topic/pipelining.20for.20distributed.20compilation.html#163125777">(Apr 11 2019 at 18:33)</a>:</h4>
<p>I still don't know what you mean by "incremental inputs" or "cache entires"</p>



<a name="163125889"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/195180-t-compiler/wg-pipelining/topic/pipelining%20for%20distributed%20compilation/near/163125889" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/195180-t-compiler/wg-pipelining/topic/pipelining.20for.20distributed.20compilation.html#163125889">(Apr 11 2019 at 18:34)</a>:</h4>
<p><span class="user-mention" data-user-id="119009">@eddyb</span> when incremental reruns, it is taking advantage of the results of a previous build</p>



<a name="163125923"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/195180-t-compiler/wg-pipelining/topic/pipelining%20for%20distributed%20compilation/near/163125923" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/195180-t-compiler/wg-pipelining/topic/pipelining.20for.20distributed.20compilation.html#163125923">(Apr 11 2019 at 18:35)</a>:</h4>
<p>sort of, but less "results" and more "intermediary computations"</p>



<a name="163125932"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/195180-t-compiler/wg-pipelining/topic/pipelining%20for%20distributed%20compilation/near/163125932" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/195180-t-compiler/wg-pipelining/topic/pipelining.20for.20distributed.20compilation.html#163125932">(Apr 11 2019 at 18:35)</a>:</h4>
<p>sure</p>



<a name="163125934"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/195180-t-compiler/wg-pipelining/topic/pipelining%20for%20distributed%20compilation/near/163125934" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/195180-t-compiler/wg-pipelining/topic/pipelining.20for.20distributed.20compilation.html#163125934">(Apr 11 2019 at 18:35)</a>:</h4>
<p>it's really just persisted memoization</p>



<a name="163125963"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/195180-t-compiler/wg-pipelining/topic/pipelining%20for%20distributed%20compilation/near/163125963" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/195180-t-compiler/wg-pipelining/topic/pipelining.20for.20distributed.20compilation.html#163125963">(Apr 11 2019 at 18:36)</a>:</h4>
<p>almost the same thing as <code>rmeta</code>, but with a newer design</p>



<a name="163126040"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/195180-t-compiler/wg-pipelining/topic/pipelining%20for%20distributed%20compilation/near/163126040" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/195180-t-compiler/wg-pipelining/topic/pipelining.20for.20distributed.20compilation.html#163126040">(Apr 11 2019 at 18:36)</a>:</h4>
<p>no, the key difference is that the data is different depending on the last thing that you compiled</p>



<a name="163126067"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/195180-t-compiler/wg-pipelining/topic/pipelining%20for%20distributed%20compilation/near/163126067" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/195180-t-compiler/wg-pipelining/topic/pipelining.20for.20distributed.20compilation.html#163126067">(Apr 11 2019 at 18:36)</a>:</h4>
<p>the result of the previous build cannot be an input to the current build process</p>



<a name="163126092"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/195180-t-compiler/wg-pipelining/topic/pipelining%20for%20distributed%20compilation/near/163126092" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/195180-t-compiler/wg-pipelining/topic/pipelining.20for.20distributed.20compilation.html#163126092">(Apr 11 2019 at 18:37)</a>:</h4>
<p>wait, what is this even for?</p>



<a name="163126094"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/195180-t-compiler/wg-pipelining/topic/pipelining%20for%20distributed%20compilation/near/163126094" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/195180-t-compiler/wg-pipelining/topic/pipelining.20for.20distributed.20compilation.html#163126094">(Apr 11 2019 at 18:37)</a>:</h4>
<p><a href="https://chromium.googlesource.com/infra/goma/client/" target="_blank" title="https://chromium.googlesource.com/infra/goma/client/">https://chromium.googlesource.com/infra/goma/client/</a></p>



<a name="163126111"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/195180-t-compiler/wg-pipelining/topic/pipelining%20for%20distributed%20compilation/near/163126111" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/195180-t-compiler/wg-pipelining/topic/pipelining.20for.20distributed.20compilation.html#163126111">(Apr 11 2019 at 18:37)</a>:</h4>
<p>it seems like you have a different usecase of "distributed compilation" in mind</p>



<a name="163126115"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/195180-t-compiler/wg-pipelining/topic/pipelining%20for%20distributed%20compilation/near/163126115" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/195180-t-compiler/wg-pipelining/topic/pipelining.20for.20distributed.20compilation.html#163126115">(Apr 11 2019 at 18:37)</a>:</h4>
<p>is this 100% batch builds?</p>



<a name="163126194"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/195180-t-compiler/wg-pipelining/topic/pipelining%20for%20distributed%20compilation/near/163126194" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/195180-t-compiler/wg-pipelining/topic/pipelining.20for.20distributed.20compilation.html#163126194">(Apr 11 2019 at 18:38)</a>:</h4>
<p>can you clarify what you mean by "batch builds"?</p>



<a name="163126196"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/195180-t-compiler/wg-pipelining/topic/pipelining%20for%20distributed%20compilation/near/163126196" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/195180-t-compiler/wg-pipelining/topic/pipelining.20for.20distributed.20compilation.html#163126196">(Apr 11 2019 at 18:38)</a>:</h4>
<p>like, with a strong requirement of starting from scratch every time?</p>



<a name="163126243"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/195180-t-compiler/wg-pipelining/topic/pipelining%20for%20distributed%20compilation/near/163126243" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/195180-t-compiler/wg-pipelining/topic/pipelining.20for.20distributed.20compilation.html#163126243">(Apr 11 2019 at 18:39)</a>:</h4>
<p>Yes, previous compilation outputs shouldn't affect the results of the current compilation.</p>



<a name="163126262"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/195180-t-compiler/wg-pipelining/topic/pipelining%20for%20distributed%20compilation/near/163126262" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/195180-t-compiler/wg-pipelining/topic/pipelining.20for.20distributed.20compilation.html#163126262">(Apr 11 2019 at 18:39)</a>:</h4>
<p>okay then that's not at all what I was thinking of, sorry</p>



<a name="163126334"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/195180-t-compiler/wg-pipelining/topic/pipelining%20for%20distributed%20compilation/near/163126334" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/195180-t-compiler/wg-pipelining/topic/pipelining.20for.20distributed.20compilation.html#163126334">(Apr 11 2019 at 18:40)</a>:</h4>
<p>so why would you even need split compiles? to run codegen on a different machine?</p>



<a name="163126347"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/195180-t-compiler/wg-pipelining/topic/pipelining%20for%20distributed%20compilation/near/163126347" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/195180-t-compiler/wg-pipelining/topic/pipelining.20for.20distributed.20compilation.html#163126347">(Apr 11 2019 at 18:40)</a>:</h4>
<p>you can still do what I said, you'd just be starting incremental from scratch and using it only once</p>



<a name="163126375"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/195180-t-compiler/wg-pipelining/topic/pipelining%20for%20distributed%20compilation/near/163126375" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/195180-t-compiler/wg-pipelining/topic/pipelining.20for.20distributed.20compilation.html#163126375">(Apr 11 2019 at 18:41)</a>:</h4>
<p>basically, run <code>rustc --emit=metadata</code> or w/e, in incremental mode, and copy the incremental cache to another machine</p>



<a name="163126396"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/195180-t-compiler/wg-pipelining/topic/pipelining%20for%20distributed%20compilation/near/163126396" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/195180-t-compiler/wg-pipelining/topic/pipelining.20for.20distributed.20compilation.html#163126396">(Apr 11 2019 at 18:41)</a>:</h4>
<p>you wouldn't be using it across builds, but within one build</p>



<a name="163126410"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/195180-t-compiler/wg-pipelining/topic/pipelining%20for%20distributed%20compilation/near/163126410" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/195180-t-compiler/wg-pipelining/topic/pipelining.20for.20distributed.20compilation.html#163126410">(Apr 11 2019 at 18:41)</a>:</h4>
<p>(<code>rmeta</code> doesn't have enough information to do codegen, but the incremental caches do)</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>